<?php
	session_start();
// This will connect us to our database...
include("../../funciones.php");
$conexion = conectaDB();
// The ext grid script will send  a task field which will specify what it wants to do
$task = '';
if ( isset($_POST['task'])){
  $task = $_POST['task'];
}
switch($task){
	case "LISTING_CLIENTES":
		getList_clientes($conexion);
        break;
	case "LISTING_PRODUCTOS":
		getList_productos($conexion);
        break;
    case "LISTING":
        getList($conexion);
        break;
	case "LISTADO_PRODUCTO":
		obtenerListadoproducto($conexion);
        break;
	case "LISTADO_TIPO_MOVIMIENTO":
		obtenerListadotipo_movimiento($conexion);
        break;
	case "LISTADO_TIPO_PROVEEDOR":
		obtenerListadoproveedor($conexion);
        break;	
	case "UPDATE":
        updateRow($conexion);
        break;
    case "CREATE":
        createRow($conexion);
        break;
    case "DELETE":
        deleteRow($conexion);
        break;
    case "SEARCH":
        searchRows($conexion);
        break;
    case "COMBO_SEARCH":
        searchcomboRows($conexion);
        break;
    default:
        echo "{failure:true}";
        break;
}
	
	
	function getList_productos($conexion) 
	{
		$fecha=date("Y-m-d");
		
		$query = "	SELECT 		CASE WHEN tabla_2.Id_producto IS NOT NULL THEN tabla_2.Id_producto ELSE tabla_1.Id_producto END as Id_producto,
								CASE WHEN tabla_2.nombre IS NOT NULL THEN tabla_2.nombre ELSE tabla_1.nombre END as nombre,
								CASE WHEN tabla_2.descripcion IS NOT NULL THEN tabla_2.descripcion ELSE tabla_1.descripcion END as descripcion,
								CASE WHEN tabla_2.Id_familia IS NOT NULL THEN tabla_2.Id_familia ELSE tabla_1.Id_familia END as Id_familia,
								CASE WHEN tabla_2.codigo_barras IS NOT NULL THEN tabla_2.codigo_barras ELSE tabla_1.codigo_barras END as codigo_barras,
								CASE WHEN tabla_2.existencia IS NOT NULL THEN tabla_2.existencia ELSE tabla_1.existencia END as existencia,
								CASE WHEN tabla_2.precio_venta IS NOT NULL THEN tabla_2.precio_venta ELSE tabla_1.precio_venta END as precio_venta
					FROM
					(SELECT 		DISTINCT p.Id_producto,
									p.nombre,
									p.descripcion,
									p.Id_familia,
									p.codigo_barras,
									p.existencia,
									p.precio_venta
						FROM producto p LEFT JOIN servicio_descuentop sd
						ON (p.Id_producto=sd.Id_producto AND sd.status=1 AND '$fecha' NOT BETWEEN fecha_i AND fecha_f)) as tabla_1
					LEFT JOIN 
					(SELECT 		p.Id_producto,
									p.nombre,
									p.descripcion,
									p.Id_familia,
									p.codigo_barras,
									p.existencia,
									p.precio_venta-(p.precio_venta * (sd.descuento/100)) as precio_venta
						FROM producto p INNER JOIN servicio_descuentop sd
						ON (p.Id_producto=sd.Id_producto AND sd.status=1 AND '$fecha' BETWEEN fecha_i	AND fecha_f)) as tabla_2
						
						ON (tabla_2.Id_producto=tabla_1.Id_producto)";
		
		if(isset($_POST['nombre'])){$nombre=$_POST['nombre'];$query_=" WHERE tabla_2.nombre LIKE '%".$nombre."%' OR tabla_1.nombre LIKE '%".$nombre."%' ";$query.=$query_;}
		$query.=" order by tabla_2.Id_producto,tabla_1.Id_producto";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	
	
	function getList_clientes($conexion) 
	{
		$query = "	SELECT Id_cliente,
						CONCAT(nombre,' ',ap_paterno,' ',ap_materno) as nombrecompleto,
						nombre,
						ap_paterno,
						ap_materno,
						telefono,
						email,
						edad,
						cumple,
						direccion 
					FROM cliente";
		if(isset($_POST['nombre'])){$nombre=$_POST['nombre'];$query_=" WHERE nombre LIKE '%".$nombre."%' OR ap_paterno LIKE '%".$nombre."%' OR ap_materno LIKE '%".$nombre."%'";$query.=$query_;}
		$query.=" order by Id_cliente";
		
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	function obtenerListadoproveedor($conexion)
	{
		$query = "	SELECT 	Id_proveedor,
							RFC,
							nombre							
					FROM proveedor order by Id_proveedor";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}	
	
	function obtenerListadotipo_movimiento($conexion)
	{
		$query = "	SELECT 	Id_tm,
							nombre,
							descripcion,
							salida
					FROM tipo_movimiento 
					WHERE Id_estatus=3 order by Id_tm";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				if($rec["salida"]==0)$rec["nombre"]="Entrada por ".$rec["nombre"];
				else $rec["nombre"]="Salida por ".$rec["nombre"];
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}	

	function obtenerListadoproducto($conexion)
	{
		$query = "	SELECT 	Id_producto,
							nombre,
							descripcion,
							codigo_barras,
							existencia
					FROM producto order by Id_producto";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	function updateRow($conexion)
	{
		$id_producto = 		$_POST['id_producto'];
		$nombre = 			$_POST['txt_nombre'];
		$descripcion = 		$_POST['txt_descripcion'];
		$id_familia = 		$_POST['id_familia'];
		$codigobarras =		$_POST['txt_codigobarras'];
		
		$result = mysql_query("BEGIN",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}		
			/*Insercion sencilla*/
			$query = "	UPDATE 	producto SET 	nombre='$nombre',
												descripcion='$descripcion',
												Id_familia=$id_familia,
												codigo_barras='$codigobarras'
						WHERE 	Id_producto=$id_producto";
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		
		$result = mysql_query("COMMIT",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		echo 1;	
	}
	
	function getList($conexion) 
	{
		if($_POST['id_producto']!='')
		{
			$id_producto = 		$_POST['id_producto'];
			$query = "call	reporte_ficha_almacen($id_producto)";
			$result = mysql_query($query);
			$query = "select * from ficha_almacen ORDER BY cns";
			$result = mysql_query($query);
			$nbrows = mysql_num_rows($result);
			$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
			$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
			$limit = $query." LIMIT ".$start.",".$end;    
			$result = mysql_query($limit);  
  
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
		else
		{echo '({"total":"0", "results":""})';}		
	}

	
	function createRow($conexion)
	{
		$total = 				$_POST['total_vp'];
		$txt_paga_con = 		$_POST['txt_paga_con_vp'];
		$txt_paga_baucher = 	$_POST['txt_paga_baucher'];
		$id_cliente = 			$_POST['id_cliente'];
		$id_productos = 		$_POST['id_productos'];
		$cantidad = 			$_POST['cantidad'];
		$descuento = 			$_POST['descuento'];
		
		if (version_compare(PHP_VERSION,"5.2","<"))
		{
			require_once("../../JSON.php"); //if php<5.2 need JSON class
			$json = new Services_JSON($conexion);
			$id_productos_arraypress = $json->decode(stripslashes($id_productos));
			$cantidad_arraypress = $json->decode(stripslashes($cantidad));
			$descuento_arraypress = $json->decode(stripslashes($descuento));
		}
		else
		{
			$id_productos_arraypress = json_decode(stripslashes($id_productos));
			$cantidad_arraypress = json_decode(stripslashes($cantidad));
			$descuento_arraypress = json_decode(stripslashes($descuento));
		}
		/******			*****/
		if(sizeof($id_productos_arraypress)<1)
		{
			echo '0';
			return;
		}
		
		$result = mysql_query("BEGIN",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);echo '0*0';return;}
		
			/*Insercion sencilla*/
			$query = "call hacer_pago_producto($total,$txt_paga_con,$txt_paga_baucher,$id_cliente,@id_pago,@folio)";
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);echo '0*0';return;}
			
			$result = mysql_query("SELECT @id_pago",$conexion);
			$rec = mysql_fetch_array($result);
			
			$result=mysql_query("select @folio");
			$folio = mysql_fetch_array($result);
			$folio=$folio[0];
			
			if(sizeof($id_productos_arraypress)==1 && $result!=NULL)
			{
				$query = "call entrada_producto($id_productos_arraypress[0],4,-1,'00-00-0000','',$cantidad_arraypress[0],0,0,$rec[0],$descuento_arraypress[0])";
				$result = mysql_query($query,$conexion);
				if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);echo '0*0';return;}
			}
			else
			{
				for($i = 0; $i < sizeof($id_productos_arraypress) && $result!=NULL; $i++)
				{
					$query = "call entrada_producto($id_productos_arraypress[$i],4,-1,'00-00-0000','',$cantidad_arraypress[$i],0,0,$rec[0],$descuento_arraypress[$i])";
					$result = mysql_query($query,$conexion);
					if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);echo '0*0';return;}
				}
			}
		
		$result = mysql_query("COMMIT",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);echo '0*0';return;}
		echo '1*'.$folio;
	}
	
	// Encodes a SQL array into a JSON formated string
	function JEncode($arr)
	{
		if (version_compare(PHP_VERSION,"5.2","<"))
		{    
			require_once("../../JSON.php"); //if php<5.2 need JSON class
			$json = new Services_JSON($conexion);//instantiate new json object
			$data=$json->encode($arr);  //encode the data in json format
		} else
		{
			$data = json_encode($arr);  //encode the data in json format
		}
		return $data;
	}

	// Encodes a YYYY-MM-DD into a MM-DD-YYYY string
	function codeDate ($date) 
	{
		$tab = explode ("-", $date);
		$r = $tab[1]."/".$tab[2]."/".$tab[0];
		return $r;
	}
	
	function testeo($resultado,$conn)
	{
		/*si suscede un error*/
		if($resultado==NULL)
		{
			$query = "ROLLBACK;";
			$result=mysql_query($query,$conn);
			return 1;
		}
		return 0;
	}
	
	function testerarchivo($nombrefile,$cadena)
	{
		$referencia=fopen($nombrefile,"w");		
		fwrite($referencia,$cadena);
		fclose($referencia);
	}
?> 